package JUC;

/**
 * @author 豆包LU
 * @date 2023/5/9 15:19
 */
public class VariableExample {
    // 类变量，所有该类的对象共享同一个变量，存放在方法区
    static int classVar = 0;
    // 成员变量，每个对象都有独立的一份，存放在堆内存中
    int instanceVar = 1;

    public void method() {
        // 局部变量，仅在方法中有效，存放在栈内存中
        int localVar = 2;
        // 在方法中可以访问类变量、成员变量和局部变量
        System.out.println("classVar: " + classVar);
        System.out.println("instanceVar: " + instanceVar);
        System.out.println("localVar: " + localVar);
    }

    public static void main(String[] args) {
        // 在main方法中，只能访问类变量和局部变量，无法访问成员变量
        System.out.println("classVar: " + classVar);

        // 创建对象，实例化成员变量
        VariableExample obj = new VariableExample();
        System.out.println("instanceVar: " + obj.instanceVar);

        // 调用方法，使用局部变量
        obj.method();
    }
}
